package net.dopan.pigframe.user.mapper;

import net.dopan.pigframe.core.base.dao.BaseDao;
import net.dopan.pigframe.core.bean.interceptor.DataScope;
import net.dopan.pigframe.core.model.UserVO;
import net.dopan.pigframe.core.utils.Query;
import net.dopan.pigframe.user.model.entity.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Package: net.dopan.pigframe.user.mapper
 * @Title: SysUserMapper
 * @Description: 用户表 Mapper 接口
 * @author: 刘宽
 * @date: 2018/9/2 20:46
 */
public interface SysUserMapper extends BaseDao<SysUser> {
    /**
     * 通过用户名查询用户信息（含有角色信息）
     *
     * @param username 用户名
     * @return userVo
     */
    UserVO selectUserVoByUsername(String username);

    /**
     * 分页查询用户信息（含角色）
     *
     * @param query     查询条件
     * @param username  用户名
     * @param dataScope 数据权限
     * @return list
     */
    List selectUserVoPageDataScope(Query query, @Param("username") Object username, DataScope dataScope);

    /**
     * 通过手机号查询用户信息（含有角色信息）
     *
     * @param mobile 用户名
     * @return userVo
     */
    UserVO selectUserVoByMobile(String mobile);

    /**
     * 通过openId查询用户信息
     *
     * @param openId openid
     * @return userVo
     */
    UserVO selectUserVoByOpenId(String openId);

    /**
     * 通过ID查询用户信息
     *
     * @param id 用户ID
     * @return userVo
     */
    UserVO selectUserVoById(Integer id);
    /**
     * 根据用户ID查看用户是否验证
     * 0 未验证 1验证
     */
    Integer getIdentityVerification(Integer userId);
}